1. Field of the Invention
The present invention relates to the field of virtualization and more particularly to virtual machine (VM) image retrieval in a virtualized computing environment
2. Description of the Related Art
For many decades, computing implied both an application and a supporting platform. Until the late twentieth century, a host computing environment included a hardware infrastructure of processor core, input/output, memory and fixed storage, the combination of which supported an operating system, which in turn supported the execution of a single application at a time. Gradually, as processor power increased exponentially, advanced forms of the operating system enabled both simulated and actual multi-tasking such that multiple applications could execute within the same host computing environment.
Initially, applications were self contained bundles of logic relying on little other than core object files and related resource files. As computing become integral to modern industry, however, applications became co-dependent on the presence of other applications such that the requisite environment for an application included not only the underlying operating system and supporting hardware platform, but also other key applications including application servers, database management servers, collaboration servers and communicative logic commonly referred to as middleware. Given the complexity of application and platform interoperability, however, different combinations of applications executing in a single hardware platform can demonstrate differing degrees of performance and stability.
Virtualization as a technology aims to interject a layer between the hardware platform and operating system and executing applications. From the perspective of business continuity and disaster recovery, virtualization provides the inherent advantage of environment portability. Specifically, to move an entire environment configured with multiple different applications is a matter of moving a virtual machine (VM) image from one supporting hardware platform to another. Further, more powerful computing environments can support the coexistence of multiple different VM images, all the while maintaining a virtual separation between the VM images. Consequently, a failure condition in one VM image cannot jeopardize the integrity of other co-executing VM images in the same hardware platform.
A VM monitor, known in the art as a “hypervisor”, manages the interaction between each VM image and the underlying resources provided by the hardware platform. In this regard, a bare metal hypervisor runs directly on the hardware platform much as an operating system runs directly on hardware. By comparison, a hosted hypervisor runs within a host operating system. In either case, the hypervisor can support the operation of different VM images—the number of VM images being limited only by the processing resources of a VM container holding the VM images or the hardware platform itself.
Of note, virtualization has been extended to the cloud computing environment. Cloud computing refers to Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand. Cloud computing typically involves over the-Internet-provision of dynamically scalable and often virtualized resources and is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. Of note, within the cloud computing environment, the creation of large numbers of VM instances often requires the repeated copying of a substantial volume of data from a single data source in the “cloud”. Consequently, a potential bottleneck can result in terms of how quickly the single data source can serve the data. Further, the creation of large numbers of VM images in a single data source can provide for an adverse impact upon a single network segment through which data must flow from the single data source. Finally, the creation of large numbers of VM images in a single data source potentially represents a single point of failure resulting from disk failure, network failure or other such resource failure.